/**
 * ContractMapper接口
 */
package com.zzyl.mapper;

import com.github.pagehelper.Page;
import com.zzyl.entity.live.Contract;
import com.zzyl.vo.ContractVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.time.LocalDateTime;
import java.util.List;

@Mapper
public interface ContractMapper {
	/**
	 * 根据id删除合同
	 */
	int deleteByPrimaryKey(Long id);
	
	/**
	 * 插入合同
	 */
	int insert(Contract record);
	
	/**
	 * 选择性插入合同
	 */
	int insertSelective(Contract record);
	
	/**
	 * 根据id选择合同
	 */
	Contract selectByPrimaryKey(Long id);
	
	/**
	 * 选择性更新合同
	 */
	int updateByPrimaryKeySelective(Contract record);
	
	/**
	 * 选择性更新合同
	 */
	int batchUpdateByPrimaryKeySelective(@Param("ids") List<Long> ids, @Param("status") Integer status);
	
	/**
	 * 更新合同
	 */
	int updateByPrimaryKey(Contract record);
	
	
	/**
	 * 分页查询合同信息
	 * @param contractNo 合同编号
	 * @param elderName  老人姓名
	 * @param status     合同状态
	 * @param startTime  开始时间
	 * @param endTime    结束时间
	 * @return 分页结果
	 */
	Page<List<Contract>> selectByPage(@Param("memberPhone") String memberPhone, @Param("contractNo") String contractNo, @Param("elderName") String elderName,
	                                  @Param("status") Integer status, @Param("startTime") LocalDateTime startTime, @Param("endTime") LocalDateTime endTime);
	
	
	List<Contract> listAllContracts();
	
	List<ContractVo> listByMemberPhone(@Param("memberPhone") String memberPhone);
	
	@Update("update contract set status = #{status} where elder_id = #{elderId}")
	void updateStatusByElderId(@Param("elderId") Long elderId, @Param("status") Integer status);
	
	
	@Update("update contract set status = #{status} where elder_id = #{elderId}")
	void updateByElderId(@Param("elderId") Long elderId, @Param("status") Integer status);
	
	@Select("select * from contract where elder_id = #{elderId}")
	Contract selectByElderId(@Param("elderId") Long elderId);
}

